/**
在 Node.js 中， `Buffer`  类提供了多种方法来处理字符串的转换。字符串转换是指在  `Buffer`  对象和字符串之间进行相互转换。这对于处理二进制数据和文本数据之间的转换非常重要。以下是关于  `Buffer`  中字符串转换的说明和总结：

  1. 创建 Buffer 对象
  可以通过字符串直接创建  `Buffer`  对象，使用  `Buffer.from()`  方法。
   示例：
  const buf = Buffer.from('Hello, World!', 'utf8');
  console.log(buf); // 输出：<Buffer 48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21>
  2. Buffer 转换为字符串
  使用  `Buffer`  的  `toString()`  方法可以将  `Buffer`  对象转换为字符串。

   2.1 基本用法
  - 默认编码为  `utf8` 。
  const buf = Buffer.from('Hello, World!');
  console.log(buf.toString()); // 输出：Hello, World!
   2.2 指定编码
  可以指定编码格式，例如  `ascii` 、 `utf8` 、 `base64`  等。
  const buf = Buffer.from('Hello, World!', 'utf8');
  console.log(buf.toString('ascii')); // 输出：Hello, World!
  3. 字符串转换为 Buffer
  使用  `Buffer.from()`  方法可以将字符串转换为  `Buffer`  对象。

   3.1 基本用法
  const str = 'Hello, World!';
  const buf = Buffer.from(str);
  console.log(buf); // 输出：<Buffer 48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21>
   3.2 指定编码
  可以在创建  `Buffer`  时指定编码格式。
  const str = 'Hello, World!';
  const buf = Buffer.from(str, 'utf8');
  console.log(buf); // 输出：<Buffer 48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21>
  4. 处理不同编码
  - **UTF-8**: 支持多字节字符，适合大多数语言。
  - **ASCII**: 仅支持基本的英文字符。
  - **Base64**: 通常用于在网络上传输二进制数据。

  5. 示例：完整的转换过程
  // 字符串转 Buffer
  const originalString = 'Hello, Node.js!';
  const buffer = Buffer.from(originalString, 'utf8');

  // Buffer 转字符串
  const convertedString = buffer.toString('utf8');

  console.log(originalString); // 输出：Hello, Node.js!
  console.log(buffer); // 输出：<Buffer 48 65 6c 6c 6f 2c 20 4e 6f 64 65 2e 6a 73 21>
  console.log(convertedString); // 输出：Hello, Node.js!
  6. 总结
  Node.js 中的  `Buffer`  类提供了方便的方法来进行字符串与二进制数据之间的转换。通过  `Buffer.from()`  方法可以轻松创建  `Buffer`  对象，而  `toString()`  方法则可以将  `Buffer`  对象转换为字符串。掌握这些转换方法对于处理文本和二进制数据之间的交互非常重要。
 */
const fs = require("fs");

// 1. 创建一个Buffer “Buffer”的签名“(str: string, encoding?: BufferEncoding | undefined): Buffer”已弃用。请改用Buffer.from(str, encoding)。
const buf = new Buffer("hello Buffer");
console.log(buf);

// 2. Buffer.from(str, encoding)
const bufFrom = Buffer.from("hello Buffer.from");
console.log(bufFrom);

// 3. 创建Buffer中文
const bufFromChinese = Buffer.from("你好 Buffer.from");
console.log(bufFromChinese);
console.log(bufFromChinese.toString());

// 4. 手动指定的Buffer创建过程的编码
const bufChinese = new Buffer.from("你好 Buffer encoding", "utf16le");
console.log(bufChinese);
// 解码
console.log(bufChinese.toString("utf16le"));
